/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package clases;

import clases.abmBovino;

import formularios.mensajeEspera;
import java.awt.BorderLayout;
import java.awt.Color;
import java.io.*;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import javax.swing.*;

public class ProcesarTxt {

    private JFileChooser fr = new JFileChooser();
    File f;
    FileReader lectorArchivo;
    FileWriter escritorArchivo;

    public void crearTxt(String nombre, String texto) {

        try {
            f = new File(nombre);
            escritorArchivo = new FileWriter(f);
            BufferedWriter bw = new BufferedWriter(escritorArchivo);
            PrintWriter salida = new PrintWriter(bw);

            salida.write(texto + "\n");

            salida.close();

        } catch (IOException e) {
            System.out.println("Error:" + e.getMessage());
        }

    }

//METODO QUE NOS PERMITE LEER EL TXT A PARTIR  DE UN JCHOOSEFILE
    public void leerGrafico() {
        File f;
        javax.swing.JFileChooser j = new javax.swing.JFileChooser();
        j.setFileView(new VerSoloTxt());
        j.setFileFilter(new FiltroTxtFile());
        j.showOpenDialog(j);
        String path = j.getSelectedFile().getAbsolutePath();



        f = new File(path);
        try {
            FileReader fr = new FileReader(f);
            BufferedReader br = new BufferedReader(fr);

            String aux = br.readLine();

            int agregados = 0;
            while ((aux = br.readLine()) != null) {
                String idTag = aux.substring(1, 24);
                String idSenasa = aux.substring(25, 29);
                if (!new clases.abmBovino().ExisteBovino(idSenasa)) {
                    new clases.abmBovino().AltaEquivalenciaBovino(idSenasa, idTag);
                    agregados = agregados + 1;
                } //Si ya existe como hace para avisar???


            }
            System.out.println(agregados);
            if (agregados > 0) {
                System.out.println(agregados);
            } //         JOptionPane.showMessageDialog(null,"Se agregaron \n muchos \n numeros de identificación ","Aviso", JOptionPane.INFORMATION_MESSAGE);
            else {
                JOptionPane.showMessageDialog(null, "Se realizaron las equivalencias con anterioridad", "Aviso", JOptionPane.INFORMATION_MESSAGE);
            }

        } catch (IOException e) {
            JOptionPane.showMessageDialog(null, e, "error", JOptionPane.INFORMATION_MESSAGE);
        }

    }

    public void leerControl() {
        File f;
        javax.swing.JFileChooser j = new javax.swing.JFileChooser();
        j.setFileView(new VerSoloTxt());
        j.setFileFilter(new FiltroTxtFile());
        j.showOpenDialog(j);
        String path = j.getSelectedFile().getAbsolutePath();

        f = new File(path);
        try {
            FileReader fr = new FileReader(f);
            BufferedReader br = new BufferedReader(fr);
            String aux = "";
            int agregados = 0;
            
            while ((aux = br.readLine()) != null) {
                String[] datos = aux.split("[|]");
                String idjose = datos[0].substring(1, datos[0].length());
                int anio = Integer.parseInt(datos[1]);
                String idTag = datos[2];
                String sexo = datos[3];
                String idMadre = datos[4];
                String numFuego = datos[5];
                int idRaza = Integer.parseInt(datos[6]);
                int idPelaje = Integer.parseInt(datos[7]);
                int idproveedor = 0;
                if (datos[8].equals("")) {
                    idproveedor = 0;
                } else {
                    idproveedor = Integer.parseInt(datos[8]);
                }
                int tipoBovino = Integer.parseInt(datos[9]);
                String observacion = datos[10];
                String fechaAplicacion = datos[11];
                String idSenasa = datos[12];
                String colorCaravana = datos[13].substring(0, datos[13].length() - 1);

                if (!new clases.abmBovino().ExisteBovino(idTag)) {
                    new clases.abmBovino().AltaBovino(idjose, anio, idTag, sexo, idMadre, numFuego, idRaza, idPelaje, idproveedor, tipoBovino, fechaAplicacion, idSenasa, colorCaravana);
                    if (!observacion.trim().equals("")) {
                        int a = new clases.abmBovino().GetIdentificacion();
                        new clases.abmObservaciones().AltaObservacion(observacion, fechaAplicacion, a);
                    }
                    agregados = agregados + 1;
                }
            }
            System.out.println(agregados);
            //jwin.setVisible(false);
            //jwin.dispose();
            
            if (agregados > 0) {
                JOptionPane.showMessageDialog(null, "Se agregaron \n " + agregados + " \n numeros de identificación ", "Aviso", JOptionPane.INFORMATION_MESSAGE);
            } else {
                JOptionPane.showMessageDialog(null, "Se realizaron las equivalencias con anterioridad", "Aviso", JOptionPane.INFORMATION_MESSAGE);
            }
        } catch (IOException e) {
            JOptionPane.showMessageDialog(null, e, "error", JOptionPane.INFORMATION_MESSAGE);
        }

    }

    public void Conectar() {
        try {
            mdbc = new conexion();
            mdbc.init();
            conn = mdbc.getMyConnection();
            stmt = conn.createStatement();
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "Problemas al concetarse a la Base de Datos", "Error", JOptionPane.ERROR_MESSAGE);
        }
    }

    private String getIdTipoindice(String nombreindice) {
        String sql = "Select idtipoindice from tipoindice where descripcion = '" + nombreindice + "'";
        String resultado = "No aparecio";
        try {
            Conectar();
            ResultSet rs = stmt.executeQuery(sql);
            if (rs.first()) {
                resultado = rs.getString("idtipoindice");
            }
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
        }
        return resultado;

    }

    public void LeerControles(int tipoControl) {
        File f;
        javax.swing.JFileChooser j = new javax.swing.JFileChooser();
        j.setFileView(new VerSoloTxt());
        j.setFileFilter(new FiltroTxtFile());
        j.showOpenDialog(j);
        String path = j.getSelectedFile().getAbsolutePath();



        f = new File(path);
        try {
            FileReader fr = new FileReader(f);
            BufferedReader br = new BufferedReader(fr);

            String aux = "", ulti = "";

            while ((aux = br.readLine()) != null) {
                System.out.println(aux);
                System.out.println(aux.length());
                String aux2 = aux.substring(25, 26);
                System.out.println(aux2);
                if (aux2.equals("|")) {
                    String prim = aux.substring(0, 25);
                    System.out.println(prim);
                    String second = aux.substring(25, aux.length());
                    System.out.println(second);
                    ulti = prim + "0" + second;
                    System.out.println(ulti);
                } else {
                    ulti = aux;
                }
                String[] datos = ulti.split("[|]");

                String idTag = datos[0].substring(1, datos[0].length());


                int identificacion = new abmBovino().GetIdentificacion(idTag);
                String estadoanimal = datos[1];

                String fecha = new abmBovino().convertirFecha(datos[2]);


                String observacion = datos[3].substring(0, datos[3].length() - 1);
                if (observacion.equals("")) {
                    observacion = "control tacto";
                } else {
                    observacion = datos[3].substring(0, datos[3].length() - 1);
                }
                String detalle = new abmEstadoAnimal().GetEstadoAnimal(Integer.parseInt(estadoanimal));

                if (estadoanimal.equals("0")) {
                    new abmControles().AltaControl(2, identificacion, fecha, "control stock");
                    new abmObservaciones().AltaObservacion("control stock:" + observacion, datos[2], identificacion);
                } else {
                    new abmControles().AltaControl(tipoControl, identificacion, fecha, detalle);
                    new abmControles().AltaControl(2, identificacion, fecha, "control stock");
                    new abmBovino().ModificaEstado(identificacion, estadoanimal);
                    new abmObservaciones().AltaObservacion("control tacto: " + observacion, datos[2], identificacion);
                }
            }


            JOptionPane.showMessageDialog(null, "Se proceso el control correctamente", "Aviso", JOptionPane.INFORMATION_MESSAGE);

        } catch (IOException e) {
            JOptionPane.showMessageDialog(null, e, "error", JOptionPane.INFORMATION_MESSAGE);
        }

    }

    public void LeerControlPeso(int tipoControl) {
        File f;
        javax.swing.JFileChooser j = new javax.swing.JFileChooser();
        j.setFileView(new VerSoloTxt());
        j.setFileFilter(new FiltroTxtFile());
        j.showOpenDialog(j);
        String path = j.getSelectedFile().getAbsolutePath();



        f = new File(path);
        try {
            FileReader fr = new FileReader(f);
            BufferedReader br = new BufferedReader(fr);

            String aux = "";
            while ((aux = br.readLine()) != null) {

                String[] datos = aux.split("[|]");

                String idTag = datos[0].substring(1, datos[0].length());
                int identificacion = new abmBovino().GetIdentificacion(idTag);
                String peso = datos[1];
                String observacion = datos[2];
                String fecha = new abmBovino().convertirFecha(datos[3].substring(0, datos[3].length() - 1));
                System.out.println(idTag + "-" + peso + "-" + observacion + "-" + fecha);
                observacion = "control peso:" + datos[1];
                new abmControles().AltaControl(tipoControl, identificacion, fecha, peso);
                new abmBovino().ModificaPeso(identificacion, peso);
                new abmObservaciones().AltaObs(observacion, fecha, identificacion);


            }
            JOptionPane.showMessageDialog(null, "Se proceso el control correctamente", "Aviso", JOptionPane.INFORMATION_MESSAGE);

        } catch (IOException e) {
            JOptionPane.showMessageDialog(null, e.getMessage(), "error", JOptionPane.INFORMATION_MESSAGE);
        }

    }

    public void LeerControlStock(int tipoControl) {
        File f;
        javax.swing.JFileChooser j = new javax.swing.JFileChooser();
        j.setFileView(new VerSoloTxt());
        j.setFileFilter(new FiltroTxtFile());
        j.showOpenDialog(j);
        String path = j.getSelectedFile().getAbsolutePath();



        f = new File(path);
        try {
            FileReader fr = new FileReader(f);
            BufferedReader br = new BufferedReader(fr);

            String aux = "";
            while ((aux = br.readLine()) != null) {

                String[] datos = aux.split("[|]");

                String idTag = datos[0].substring(1, datos[0].length());
                int identificacion = new abmBovino().GetIdentificacion(idTag);
                String observacion = datos[1];
                String fecha = new abmBovino().convertirFecha(datos[2].substring(0, datos[2].length() - 1));
                if (observacion.equals("")) {
                    observacion = "control stock";
                } else {
                    observacion = "control stock:" + datos[1];
                }
                new abmControles().AltaControl(tipoControl, identificacion, fecha, "");
                new abmObservaciones().AltaObs(observacion, fecha, identificacion);


            }
            JOptionPane.showMessageDialog(null, "Se proceso el control correctamente", "Aviso", JOptionPane.INFORMATION_MESSAGE);

        } catch (IOException e) {
            JOptionPane.showMessageDialog(null, e.getMessage(), "error", JOptionPane.INFORMATION_MESSAGE);
        }

    }

    public void LeerControlVentas(int tipoControl) {
        File f;
        javax.swing.JFileChooser j = new javax.swing.JFileChooser();
        j.setFileView(new VerSoloTxt());
        j.setFileFilter(new FiltroTxtFile());
        j.showOpenDialog(j);
        String path = j.getSelectedFile().getAbsolutePath();



        f = new File(path);
        int identificacion = 0;
        try {
            FileReader fr = new FileReader(f);
            BufferedReader br = new BufferedReader(fr);

            String aux = "";
            while ((aux = br.readLine()) != null) {

                String[] datos = aux.split("[|]");

                String idTag = datos[0].substring(1, datos[0].length());


                identificacion = new abmBovino().GetIdentificacionVendido(idTag);

                if (identificacion != 0) {
                    System.out.println(identificacion);
                    String observacion = datos[1];
                    String fecha = new abmBovino().convertirFecha(datos[2].substring(0, datos[2].length() - 1));
                    if (observacion.equals("")) {
                        observacion = "control venta";
                    } else {
                        observacion = "control stock:" + datos[1];
                    }
                    new abmControles().AltaControl(tipoControl, identificacion, fecha, "");
                    new abmObservaciones().AltaObs(observacion, fecha, identificacion);
                    new abmBovino().AltaReidentificacion(idTag, fecha, identificacion);
                    new abmBovino().ModificaEstadoVendido(identificacion, String.valueOf(tipoControl));
                    JOptionPane.showMessageDialog(null, "Se proceso el control correctamente", "Aviso", JOptionPane.INFORMATION_MESSAGE);

                }


            }
        } catch (IOException e) {
            JOptionPane.showMessageDialog(null, e.getMessage(), "error", JOptionPane.INFORMATION_MESSAGE);
        }

    }

    public void LeerControlVacunacion() {

        File f;
        javax.swing.JFileChooser j = new javax.swing.JFileChooser();
        j.setFileView(new VerSoloTxt());
        j.setFileFilter(new FiltroTxtFile());
        j.showOpenDialog(j);
        String path = j.getSelectedFile().getAbsolutePath();



        f = new File(path);
        try {
            FileReader fr = new FileReader(f);
            BufferedReader br = new BufferedReader(fr);

            String aux = "";

            while ((aux = br.readLine()) != null) {

                String[] datos = aux.split("[|]");

                String idanimal = datos[1];
                String idtipovacuna = datos[2];
                String fechaindice = new abmBovino().convertirFecha(datos[3]);

                new abmVacunacion().AltaVacunacion(fechaindice, idanimal, idtipovacuna);


            }
        } catch (IOException e) {
            JOptionPane.showMessageDialog(null, e, "Error", JOptionPane.INFORMATION_MESSAGE);
        }
    }

    public void LeerControlPeso() {
        File f;
        javax.swing.JFileChooser j = new javax.swing.JFileChooser();
        j.setFileView(new VerSoloTxt());
        j.setFileFilter(new FiltroTxtFile());
        j.showOpenDialog(j);
        String path = j.getSelectedFile().getAbsolutePath();



        f = new File(path);
        try {
            FileReader fr = new FileReader(f);
            BufferedReader br = new BufferedReader(fr);

            String aux = "";

            while ((aux = br.readLine()) != null) {

                String[] datos = aux.split("[|]");

                String idanimal = datos[1];
                String peso = datos[2];
                String fechapesaje = new abmBovino().convertirFecha(datos[3]);

                new abmBovino().AltaControlPeso(idanimal, peso, fechapesaje);


            }
        } catch (IOException e) {
            JOptionPane.showMessageDialog(null, e, "Error", JOptionPane.INFORMATION_MESSAGE);
        }
    }

    public void LeerControlEnfermedad() {

        File f;
        javax.swing.JFileChooser j = new javax.swing.JFileChooser();
        j.setFileView(new VerSoloTxt());
        j.setFileFilter(new FiltroTxtFile());
        j.showOpenDialog(j);
        String path = j.getSelectedFile().getAbsolutePath();



        f = new File(path);
        try {
            FileReader fr = new FileReader(f);
            BufferedReader br = new BufferedReader(fr);

            String aux = "";

            while ((aux = br.readLine()) != null) {

                String[] datos = aux.split("[|]");
                String idanimal = datos[1];
                String peso = datos[2];
                String fechapesaje = new abmBovino().convertirFecha(datos[3]);
                new abmBovino().AltaControlPeso(idanimal, peso, fechapesaje);


            }
        } catch (IOException e) {
            JOptionPane.showMessageDialog(null, e, "Error", JOptionPane.INFORMATION_MESSAGE);
        }
    }
    private conexion mdbc;
    private Connection conn;
    private Statement stmt;
}
